#ifndef PACKAGE_H
#define PACKAGE_H

#include <QObject>
#include<QMetaType>
#include<DataType/PortStruct.h>
class Package
{
public:
    explicit Package();

    QByteArray head() const;
    void setHead(const QByteArray &head);

    quint8 version() const;
    void setVersion(const quint8 &version);

    quint16 id() const;
    void setId(const quint16 &id);

    int function() const;
    void setFunction(const int &function);

    quint16 length() const;
    void setLength(const quint16 &length);

    QByteArray body() const;
    void setBody( const QByteArray &body);

    quint16 checkCode() const;
    void setCheckCode(const quint16 &checkCode);

    QByteArray tail() const;
    void setTail(const QByteArray &tail);

    PortStruct portStruct()const;
    void setPortStruct(const PortStruct &source);

    QMap<QByteArray,QByteArray> HttpHead()const;
    void setHttpHead(const QMap<QByteArray,QByteArray> &httpHead);

    SeData seData() const;
    void setSeData(const struct SeData &sedata);

    void clear();

private:

    QByteArray m_head;
    quint8  m_version;
    quint16 m_id;
    quint32  m_function;
    quint16 m_length;
    QByteArray m_body;
    quint16 m_checkCode;
    QByteArray m_tail;
    PortStruct m_source;
    struct SeData m_sedata;
    QMap<QByteArray,QByteArray> m_httpHead;
};

Q_DECLARE_METATYPE(Package)

#endif // PACKAGE_H
